#include<iostream>
#include<set>
#include<map>
#include<string>
#include<cctype>
using namespace std;
typedef long long ll;
map<string,int> cmz;
bool check(char ch)
{
	if((ch>='0'&&ch<='9')||(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
	{
		return true;
	}
	return false;
}
int main()
{
	int n,p;cin>>n>>p;
	for(int i=1;i<=n;i++)
	{
		string s;int x;
		cin>>s>>x;
		cmz[s]=x;
	}
	char ch;
	string t="";
	ll sum=0;
	while(scanf("%c",&ch)!=EOF)
	{
		if(check(ch))
		{
			t+=ch;
		}
		else
		{
			sum+=cmz[t]%p;
			t="";
		}
	}
	cout<<sum<<endl;
	return 0;
}


// #include<iostream>
// #include<set>
// #include<map>


// using namespace std;

// int main()

// {
// 	return 0;
// }